return FALSE;
}
+static gboolean
+gtk_css_animation_is_static (GtkStyleAnimation *style_animation,
+ gint64 at_time_us)
+{
+ GtkCssAnimation *animation = GTK_CSS_ANIMATION (style_animation);
+ double iteration;
+
+ iteration = gtk_css_animation_get_iteration (animation, at_time_us);
+
+ return iteration >= animation->iteration_count;
+}
+
static void
gtk_css_animation_finalize (GObject *object)
{
animation_class->set_values = gtk_css_animation_set_values;
animation_class->is_finished = gtk_css_animation_is_finished;
+ animation_class->is_static = gtk_css_animation_is_static;
}
static void
return at_time_us >= transition->end_time;
}
+static gboolean
+gtk_css_transition_is_static (GtkStyleAnimation *animation,
+ gint64 at_time_us)
+{
+ GtkCssTransition *transition = GTK_CSS_TRANSITION (animation);
+
+ return at_time_us >= transition->end_time;
+}
+
static void
gtk_css_transition_finalize (GObject *object)
{
animation_class->set_values = gtk_css_transition_set_values;
animation_class->is_finished = gtk_css_transition_is_finished;
+ animation_class->is_static = gtk_css_transition_is_static;
}
static void
return TRUE;
}
+static gboolean
+gtk_style_animation_real_is_static (GtkStyleAnimation *animation,
+ gint64 at_time_us)
+{
+ return FALSE;
+}
+
static void
_gtk_style_animation_class_init (GtkStyleAnimationClass *klass)
{
klass->set_values = gtk_style_animation_real_set_values;
klass->is_finished = gtk_style_animation_real_is_finished;
+ klass->is_static = gtk_style_animation_real_is_static;
}
static void
return klass->is_finished (animation, at_time_us);
}
+/**
+ * _gtk_style_animation_is_static:
+ * @animation: The animation to query
+ * @at_time_us: The timestamp to query for
+ *
+ * Checks if @animation will not change its values anymore after
+ * @at_time_us. This happens for example when the animation has reached its
+ * final value or when it has been paused.
+ *
+ * Returns: %TRUE if @animation will not change anymore after @at_time_us
+ **/
+gboolean
+_gtk_style_animation_is_static (GtkStyleAnimation *animation,
+ gint64 at_time_us)
+{
+ GtkStyleAnimationClass *klass;
+
+ g_return_val_if_fail (GTK_IS_STYLE_ANIMATION (animation), TRUE);
+
+ klass = GTK_STYLE_ANIMATION_GET_CLASS (animation);
+
+ return klass->is_static (animation, at_time_us);
+}
gboolean (* is_finished) (GtkStyleAnimation *animation,
gint64 at_time_us);
+ gboolean (* is_static) (GtkStyleAnimation *animation,
+ gint64 at_time_us);
GtkBitmask * (* set_values) (GtkStyleAnimation *animation,
GtkBitmask *changed,
gint64 for_time_us,
GtkCssComputedValues *values) G_GNUC_WARN_UNUSED_RESULT;
gboolean _gtk_style_animation_is_finished (GtkStyleAnimation *animation,
gint64 at_time_us);
+gboolean _gtk_style_animation_is_static (GtkStyleAnimation *animation,
+ gint64 at_time_us);
G_END_DECLS